﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevMedia.Net.Exemplo.MVP.Interfaces;
using DevMedia.Net.Exemplo.Model.Entities;
using DevMedia.Net.Exemplo.Model.Repository;

namespace DevMedia.Net.Exemplo.MVP.Presenters
{
	public class UsuarioCadastroPresenterSupervising
	{
		private IUsuarioCadastroSupervisingView _view = null;

		private UsuarioCadastroPresenterSupervising()
		{

		}

		public UsuarioCadastroPresenterSupervising( IUsuarioCadastroSupervisingView view )
		{
			_view = view;
		}

		public void ExibirUsuarioSelecionado()
		{
			Usuario usuario = UsuarioRepository.GetUsuarioById( _view.GetUsuario().Id );
			_view.SetUsuario( usuario );
		}

		public void Salvar()
		{
			Usuario usuario = _view.GetUsuario();
			UsuarioRepository.Inserir( usuario );
			LoadAllUsuarios();
			_view.LimparControles();
		}

		public void Atualizar()
		{
			Usuario usuario = _view.GetUsuario();
			UsuarioRepository.Atualizar( usuario );
			LoadAllUsuarios();
			_view.LimparControles();
		}

		public void Deletar()
		{
			UsuarioRepository.Deletar( _view.GetUsuario().Id );
			_view.LimparControles();
		}

		public void LoadAllUsuarios()
		{
			IList<Usuario> usuarios = UsuarioRepository.GetUsuariosCadastrados();
			_view.SetListaUsuariosCadastrados( usuarios );
		}

	}
}
